Repository navigation
Allow None for max_val_steps and max_test_steps - #160
Conversation
None in the model plan now means "no cap": validation and test run over the whole split. An unset value still gets the run-mode default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Change map
|
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Victsm
left a comment
There was a problem hiding this comment.
Re-reviewed d6e3595. Explicit None now reaches the existing uncapped validation/test loader behavior, while omitted settings retain 2000/4000 defaults. YAML/JSON round-trip and no-replay coverage are included, and the increased time/logit-memory cost is documented. No new correctness blocker found; this does not depend on #159 being fully streaming.
Problem
max_val_stepsandmax_test_stepscap how many batches validation and test evaluate. There was no way to turn the cap off: the model plan only accepted an integer from 1 to 8000, and an unset value fell back to the run-mode default (2000 / 4000 forNORMALandBEST). Large splits were therefore always evaluated on a sample, even though the DiskGraph datamodule already treatsNoneas "no cap".Change
The model plan now accepts
Nonefor both fields:Nonepasses through validation, the trainers and the datamodule unchanged, and the eval loader yields every batch of the split. The docstring notes the cost: validation then runs over the whole split every epoch, and the split's logits are held in memory.Back-compat
???)1–8000None/ empty0,> 8000Existing plans parse and run exactly as before. A plan that sets
Nonecan only be read by akumoapithat includes this change.Testing
test/config/test_model_plan.py: a plan withNonesurvives YAML and JSON round-trips and validation and staysNone; an unset plan still gets 2000 / 4000.test/train/test_diskgraph_nested_trainer.py:Nonereaches the datamodule unchanged.test/train/datamodule/test_diskgraph_lightning_data.py: on a 20-row val or test split, a cap of 3 yields 3 batches (6 rows), andNoneyields all 10 batches (20 rows).packages/kumo-api/test/test_json_serde.py, all passing (698 tests).🤖 Generated with Claude Code